#include "stk_websock_extensions.h"
using namespace stk;

WebsockExtensions::WebsockExtensions()
{
    SetType(STK_FD_NAME_WEBSOCK_EXTENSIONS);
    m_strValue = "";
}

WebsockExtensions::WebsockExtensions(const WebsockExtensions &src)
{
    *this = src;
}

WebsockExtensions::WebsockExtensions(const char *buf, int len)
{
    SetType(STK_FD_NAME_WEBSOCK_EXTENSIONS);
    parse(buf, len);
}

WebsockExtensions::~WebsockExtensions()
{
    clear();
}

bool WebsockExtensions::isvalid() const
{
    return !m_strValue.empty();
}

void WebsockExtensions::clear()
{
    m_strValue = "";
}

int32_t WebsockExtensions::to_str(string &str)
{
    str += m_strValue;
    return 0;
}

int32_t WebsockExtensions::parse(const char *buf, int len)
{
    if (!buf)
    {
        printf("ERRO: <%010d> <%s.Parse> Invalid Buffer\n", GetSession(), GetTypeName());
        return -1;
    }
    clear();

    m_strValue = buf;
    return 0;                     /* ok */
}

WebsockExtensions& WebsockExtensions::operator = (const WebsockExtensions &src)
{
    clear();

    m_strValue = src.m_strValue;
    MsgField::operator=(src);

    return *this;
}
